package com.lby.graduation.controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@CrossOrigin
@RestController
@RequestMapping("/upload")
public class UploadController {
   @PostMapping("/upload")
    public Map upload(MultipartFile file, HttpServletRequest request){
       System.out.println(file);
        /*获取原文件名*/
        String originalFilename = file.getOriginalFilename();
        /*构造新的文件名，避免同名文件覆盖*/
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
        String newFileName=df.format(new Date())+originalFilename;
        /*指定文件上传路径*/
        File filePath = new File("D:/Project/upload");
        /*判断上传目录是否存在，若不存在，则新建*/
        if(!filePath.exists())
        {
            filePath.mkdirs();
        }
        /*实现文件上传
        * file.separator这个代表系统目录中的间隔符
        * */
        try {
            file.transferTo(new File(filePath.getAbsolutePath()+File.separator+newFileName));
        } catch (IOException e) {
            e.printStackTrace();
        }
       /**
        * 创建图片的url地址：
        *   格式：  协议 :// ip地址 ：端口号 / 文件目录(/images/2020/03/15/xxx.jpg)
        *   例子：   http://localhost:8080/images/2020/07/18/xxx.jpg
        *   获取协议： request.getScheme()
        *   获取IP地址： request.getServerName()
        *   获取端口号： request.getServerPort()
        */
       //拼接url
      String src= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/upload/"+newFileName;
       HashMap<String, String> map = new HashMap<>();
        map.put("src",src);
        map.put("code","0");
        map.put("msg","上传成功");
       return map;
    }
}
